// pages/profile/index.ts
// 获取页面栈实例
const pageStack = getCurrentPages()
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  getUserNickname (ev) {
    this.updateNickname(ev.detail.value)
  },

  async updateNickname (nickName) {
    if (nickName.trim() === '') return
    const {code} = await wx.http.put('/userInfo', {nickName})
    if (code !== 10000) return wx.utils.toast('更新昵称失败！')
    // 借助页面栈实例更新页面数据
    pageStack[0].setData({nickName})
    const app = getApp()
    app.userProfile.nickName = nickName
  },

  getUserAvatar (ev) {
    this.updateAvatar(ev.detail.avatarUrl)
  },

  updateAvatar (avatar) {
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      filePath: avatar,
      name: 'file',
      header: {
        Authorization: 'Bearer ' + getApp().token
      },
      formData: {
        type: 'avatar'
      },
      success: result => {
        const data = JSON.parse(result.data)
        if (data.code !== 10000) return wx.utils.toast('更新头像失败！')
        pageStack[0].setData({avatar: data.data.url})
        this.setData({avatar: data.data.url})
        const app = getApp()
        app.userProfile.avatar = data.data.url
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 获取实例
    const app = getApp()
    this.setData({...app.userProfile})
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})